<script setup lang="ts">
// 泛型  ----  类型的复用
// interface TemFn {
//   fn1: () => number;
//   fn2: () => number[];
// }

// interface TemFn2 {
//   fn1: () => string;
//   fn2: () => string[];
// }

// 泛型接口， 使我们的接口可以复用， 给接口添加 泛型变量， 就是在 尖括号里面 添加一个变量
interface TemFn<T> {
  fn1: () => T;
  fn2: () => T[];
}

const obj: TemFn<number> = {
  fn1() {
    return 1;
  },
  fn2() {
    return [1, 2, 3];
  },
};
console.log(obj);

const obj2: TemFn<string> = {
  fn1() {
    return 'a';
  },
  fn2() {
    return ['a', 'b'];
  },
};
console.log(obj2);
</script>

<template>
  <a class="main">123</a>
</template>
